home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / telecomm / sticpsrc.lzh / SOURCE.ARC / SCROLL.S < prev    next >
Text File  |  1989-04-07  |  1KB  |  53 lines

  1. /
  2. / REALLY FAST scroll-up of the screen for the Atari ST.
  3. / Used when "screen direct" is selected.
  4. /
  5. / Base address of screen is passed as a parameter
  6. /
  7.     .globl    do_scroll_
  8.     .shri
  9. do_scroll_:
  10.     movea.l 4(sp),a0        / Get logbase
  11.     movem.l ${a3-a5,d3-d7},-(sp)    / Save registers used by C
  12. /
  13.     moveq.l $63,d0            / 64 * 10 * 48 = 30720 bytes to go
  14.     lea    1280(a0),a0        / Point to second line of screen
  15. scroll:
  16.     movem.l (a0)+,${a1-a5,d1-d7}    / Get 48 bytes...
  17.     movem.l ${a1-a5,d1-d7},-1328(a0) /     ... and move them up
  18.     movem.l (a0)+,${a1-a5,d1-d7}    / Do that 10 times in line for speed
  19.     movem.l ${a1-a5,d1-d7},-1328(a0)
  20.     movem.l (a0)+,${a1-a5,d1-d7}
  21.     movem.l ${a1-a5,d1-d7},-1328(a0)
  22.     movem.l (a0)+,${a1-a5,d1-d7}
  23.     movem.l ${a1-a5,d1-d7},-1328(a0)
  24.     movem.l (a0)+,${a1-a5,d1-d7}
  25.     movem.l ${a1-a5,d1-d7},-1328(a0)
  26.     movem.l (a0)+,${a1-a5,d1-d7}
  27.     movem.l ${a1-a5,d1-d7},-1328(a0)
  28.     movem.l (a0)+,${a1-a5,d1-d7}
  29.     movem.l ${a1-a5,d1-d7},-1328(a0)
  30.     movem.l (a0)+,${a1-a5,d1-d7}
  31.     movem.l ${a1-a5,d1-d7},-1328(a0)
  32.     movem.l (a0)+,${a1-a5,d1-d7}
  33.     movem.l ${a1-a5,d1-d7},-1328(a0)
  34.     movem.l (a0)+,${a1-a5,d1-d7}
  35.     movem.l ${a1-a5,d1-d7},-1328(a0)
  36.     dbra    d0,scroll        / 64 times to go
  37.  
  38.     moveq.l $31,d0            / 32 * 10 * 4 bytes to clear
  39. clear:    clr.l    -(a0)            / 10 times for speed
  40.     clr.l    -(a0)
  41.     clr.l    -(a0)
  42.     clr.l    -(a0)
  43.     clr.l    -(a0)
  44.     clr.l    -(a0)
  45.     clr.l    -(a0)
  46.     clr.l    -(a0)
  47.     clr.l    -(a0)
  48.     clr.l    -(a0)
  49.     dbra    d0,clear
  50. /
  51.     movem.l (sp)+,${a3-a5,d3-d7}    / Restore C registers
  52.     rts
  53.